关于lua的getfenv研究
今天跟师傅请教了一下午,总算是把这个玩意搞透彻了
特写此文,以便记录。转载请注明出处。
f = 4
function a()
f = 3
print(getfenv(0).f, getfenv(1).f, getfenv(2).f, getfenv(3).f)
end
A = {}
setmetatable(A, {__index = _G})
setfenv(a, A)
function b()
f = 2
A.a()
end
B = {}
setmetatable(B, {__index = _G})
setfenv(b, B)
function c()
f = 1
B.b()
end
C = {}
setmetatable(C, {__index = _G})
setfenv(c, C)
c()
只有setfenv了环境。。getfenv才能生效。
